[C] Criptografia por Inversão de bits
Publicado por Enzo de Brito Ferber 04/03/2006
[ Hits: 13.010 ]
Homepage: http://www.maximasonorizacao.com.br
Programa de criptografia simples que
usa o operador ~(complemento de 1).
O operador ~ faz o seguinte:
01000001 ~
10111110
Todos os bits 0 passam a ser 1, e
todos os 1 passam a ser 0. O
programa criptografa um arquivo
inteiro, não uma só palavra.
#include <stdio.h> #include <stdlib.h> char encode(char ch){ return(~ch); } int set(){ system("clear"); } int abrirArquivo(char caminho[]){ FILE *arqEntrada; FILE *arqSaida; char *textoEntrada; char *textoSaida; char ch; int i=2; //para poder ser usado para alocação dinamica if((arqEntrada = fopen(caminho, "r")) == 0){ printf("Impossivel abrir o arquivo...\n"); printf("Pressione ENTER para continuar...\n"); __fpurge(stdin); ch = getchar(); main(); exit(1); } if((arqSaida = fopen("texto_criptografado.txt", "w")) == 0){ printf("Impossivel abrir o arquivo...\n"); printf("Pressione ENTER para continuar...\n"); __fpurge(stdin); ch = getchar(); main(); } printf("Realizando criptografia...\n"); while(!feof(arqEntrada)){ if((textoEntrada = (char *)calloc(i, sizeof(char)))== 0){ printf("Memoria insuficiente...\n"); exit(1); } if((textoSaida = (char *)calloc(i, sizeof(char)))== 0){ printf("Memoria insuficiente...\n"); exit(1); } fscanf(arqEntrada, "%c", &textoEntrada[i-2]); if(textoEntrada[i-2] == '{FONTE}') break; textoSaida[i-2] = encode(textoEntrada[i-2]); fprintf(arqSaida, "%c", textoSaida[i-2]); i++; } printf("Criptografia do arquivo realizada com sucesso...\n\n\n"); fclose(arqEntrada); fclose(arqSaida); free(textoEntrada); free(textoSaida); system("cat texto_criptografado.txt"); __fpurge(stdin); printf("\n\nPressione ENTER para continuar..."); ch = getchar(); } int main(void){ char caminho[100]; LOOP: set(); printf("\t\t* * * * * CRIPTOGRAFIA DE ARQUIVO * * * * *\n\n\n"); printf("Arquivo: "); __fpurge(stdin); scanf("%[^\n]", caminho); abrirArquivo(caminho); goto LOOP; }
Esse código pode ser considerado um vírus?
Cifra de Cesar - Cripto-Analise
IntensiveDoS - ferramenta de DoS para pentesting
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Ubuntu 24.04 e problemas de acesso à rede VPN [RESOLVIDO] (9)
big linux sem audio como resolver (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta